home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / data / mee / mee0113.plt < prev    next >
Text File  |  1995-08-20  |  30KB  |  1,504 lines

  1. /*
  2. mee 0.1.13 (0.2.2β)
  3.  
  4. All Right Reserved,
  5.     Copyright (c)    1995 M.Katsui     FM77AV40(フォーティー) 
  6. */
  7.  
  8. var ext[1];
  9. var tab[1];
  10. var cr[1];
  11. var date[256];
  12. var yyyy[4];
  13. var yy[2];
  14. var MM[2];
  15. var dd[2];
  16. var www[3];
  17. var hh[2];
  18. var mm[2];
  19. var ss[2];
  20. var mons[256];
  21. var min[8];
  22. min:=6000;
  23. ext:=@xc({03});
  24. tab:=@xc({09});
  25. cr:=@xc({0D});
  26. mons:={ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec};
  27.  
  28. var meeversion[128];
  29. var busytime[8];
  30. var noacttime[8];
  31. var dulytime[8];
  32. var linetype[8];
  33. var bbstype[8];
  34. var retry[8];
  35. var retrycount[8];
  36. var bbsname[3];
  37. var sysdir[8];
  38. var logdir[8];
  39. var listdir[8];
  40. var tmpdir[8];
  41. var dlist [1024*3];
  42. var newnam [16];
  43. var ppath [16];
  44. var dlname [16];
  45.  
  46. var listcval [16];
  47. var lz [3];
  48. var escch[1];
  49. var pathch[1];
  50. escch:={/};
  51. pathch:={/};
  52.  
  53. meeversion := {mee 0.1.13 (0.2.2β)};
  54. busytime := 600;
  55. noacttime := 300;
  56. dulytime := 20;
  57. retry := 100;
  58. retrycount := 0;
  59. sysdir := {a:\};
  60. logdir := {b:\};
  61. listdir := {b:\list\};
  62. tmpdir := {d:\};
  63.  
  64. var chkketa[4];
  65. var chkmoji[256];
  66. var lstchkketa[4];
  67. var lstchkmoji[256];
  68. var lstnamketa[4];
  69. var lstcutnamketa[4];
  70. var lstatketa[4];
  71. var lstcutatketa[4];
  72. var lsttoketa[4];
  73. var lstcuttoketa[4];
  74. var lstsubj[4];
  75. var lstcutsubj[4];
  76.  
  77. var djllchketa[4];
  78. var djllchmoji[256];
  79. var tncdcmoji[256];
  80. var discmoji[256];
  81.  
  82. djllchketa := 42;
  83. djllchmoji := {/};
  84.  
  85. lstchkketa := 42;
  86. lstchkmoji := {/};
  87. lstnamketa := 1;
  88. lstcutnamketa := 5;
  89. lstatketa := 31;
  90. lstcutatketa := 6;
  91. lsttoketa := 17;
  92. lstcuttoketa := 6;
  93.  
  94. tncdcmoji := {*** DISCONNECTED [};
  95. discmoji := tncdcmoji;
  96.  
  97. %init{
  98.     code({sjis});
  99.     chat({Yes});
  100. };
  101. %tncset{
  102.     cmdchk; 
  103.     setdate;
  104.     type({daytime }|yy|MM|dd|hh|mm|ss|cr);
  105.     cmdchk;
  106.     type({autolf y\npassa n\nmc n\ncstamp y\nconst on\n});
  107.     cmdchk;
  108. };
  109.  
  110. %cmdchk{
  111.     type(ext|ext|ext);
  112.     wait (1);
  113.     case(linetype = {tnc} ,{Yes},{type({\n});},{No},{type({AT\n});});
  114.     wait (3,{cmdchk},
  115.         {cmd:},{im({tnc});linetype:={tnc};},
  116.         {OK},{im({modem});linetype:={modem};}
  117.     ); 
  118. };
  119.  
  120. %setdate{
  121.     date:=@daylong;
  122.     yy:=@getchar(date,3,2);
  123.     MM:=@getchar(date,6,2);
  124.     dd:=@getchar(date,9,2);
  125.     www:=@getchar(date,12,3);
  126.     hh:=@getchar(date,16,2);
  127.     mm:=@getchar(date,19,2);
  128.     ss:=@getchar(date,22,2);
  129. };
  130.  
  131. %months{[n]
  132. im(@getchar(mons,n*4-2,3));
  133. };
  134. %monnam{[ptn]
  135. im((@nochar(@head(mons,ptn))+3)/4);
  136. };
  137.  
  138. %grep {[n,prt]
  139.     display(n|{秒間}|prt|{待ち});
  140.     wait (n,,
  141.         prt,{display(prt|{発見});},
  142.          );
  143. };
  144.  
  145. %next{[min]
  146.     cmdchk;
  147.     type({d\n});
  148.     case(linetype,
  149.         {tnc},{wait (60,,
  150.             discmoji,{display({ディスコネ確認});},
  151.             {Link state is: DISCONNECTED},{
  152.                 display({ディスコネ確認\n});
  153.                 }
  154.             );}
  155.     );
  156.     grep(min,{: <<D>>:});
  157.     display({次行ってみよー});
  158.     innext(dulytime);/*wait(dulytime);*/
  159. };
  160.  
  161. %Call {[input]
  162. tncset;
  163.  cmdchk;
  164.  type({c }|input|cr);
  165.  display(input|{にコネクト掛けています});
  166.  wait (600,{end},
  167.     {*** retry count exceeded},{
  168. display({あれれ?いないのかな});
  169. case(retrycount>retry,{Yes},{display({リトライ超過});exit;});
  170. retrycount:=retrycount+1;
  171. display({リトライ(}|retrycount|{/}|retry|{)});
  172. next(noacttime);Call(input);},
  173.     discmoji,{
  174. display({ディスコネ});
  175. case(retrycount>retry,{Yes},{display({リトライ超過});exit;});
  176. retrycount:=retrycount+1;
  177. display({リトライ(}|retrycount|{/}|retry|{)});
  178. next(noacttime);Call(input);},
  179.         {*** }|@head(input,{ })|{ busy},{
  180. display({ビジ-です});
  181. case(retrycount>retry,{Yes},{display({リトライ超過});exit;});
  182. retrycount:=retrycount+1;
  183. display({リトライ(}|retrycount|{/}|retry|{)});
  184. next(busytime);
  185. Call(input);                    },
  186.         {*** CONNECTED to },{display(input|{にコネクトしました\n});retrycount:=0});
  187. };
  188.  
  189. %ch{[n,prt]
  190. wait (n,{exit;},
  191.     prt,{display(/*prt|*/{確認});},
  192.     discmoji,{display({ディスコネ});{exit;};}
  193.     );
  194. };
  195.  
  196. %end{
  197.  cmdchk;
  198.  type({d\n});
  199.  wait (60,{stop},
  200.     discmoji,           {display({ディスコネ確認});},
  201.     {Link state is: DISCONNECTED},{display({ディスコネ確認});}
  202.  );
  203.  stop;
  204. };
  205.  
  206. %exit {
  207.  
  208. dlist := {};
  209. retrycount := 0 ;
  210.  
  211. discon;
  212. case (dlname<>{},{Yes}, {stoprec; dlname:={};});
  213. case (newnam<>{},{Yes}, {plistpoint(bbsname,ppath,newnam);newnam:={};},);
  214. pad := point;
  215. display(count|{/}|potcount|{  }|busytime|{秒間待ち});
  216. case (count = potcount , {Yes} , {stop;});
  217. count := count + 1 ;
  218. next(busytime);
  219. shellmina;
  220. stop;
  221. };
  222.  
  223. var val[3];
  224. %nread{[n,ptn,ptn2,act2]
  225.    loop({
  226.       wait(n,{exit;},
  227.          ptn2,{display(ptn2|{次のメッセージへ\n});type(act2|{\n});val:={Yes};},
  228.          discmoji,{display({ディスコネ});{exit;};},
  229.          ptn,{val:={No};}
  230.       );
  231.       im(val);
  232.    });
  233. };
  234. /*%nread{[n,ptn,ptn2,act2]
  235.     wait(n,{exit;},
  236.         ptn2,{display(ptn2|{次のメッセージへ\n});type(act2|{\n});nread(n,ptn,ptn2,act2);},
  237.         discmoji,{display({ディスコネ});{exit;};},
  238.         ptn,    {display({終了});}
  239.     );
  240. };
  241. */
  242. %fileup{[file]
  243.     var up[256*10];
  244.     type( @read(logdir|file) );
  245. };
  246.  
  247. %del{[file]
  248. wait(1);
  249. case(@filechk(file),{Yes},{command({del }|file);});
  250. };
  251.  
  252. %fcopy{[file,ptn]
  253. wait(1);
  254. case(@filechk(file),{Yes},{command({copy }|file|{ }|ptn);});
  255. };
  256.  
  257. var pad[1024*10];
  258. var a [1024*10];
  259. var tmp [1024*10];
  260. var b [256];
  261. var c [256];
  262. var d [256];
  263. var e [256];
  264. var f [256];
  265. var i [16];
  266. var p [256];
  267. var s [1024*10];
  268. var sd [256];
  269. sd:=pathch;
  270. var point [1024*10];
  271. var count [16];
  272. var potcount [16];
  273. init;
  274.  
  275. %skip{[ptna]
  276. var p[256];
  277. var val[3];
  278. a:=@wdel(ptna);
  279. p:=@head(@head(@head(a,{\n}),{ }),tab);
  280. case(@instr(p,{"})=0,
  281.     {Yes},{a:=@getchar(a,@nochar(p)+1);},
  282.     {No},{a:=@body(a,{"});
  283.         loop({
  284.             val:=@nochar(@head(a,escch))<@nochar(@head(a,{"}));
  285.             case(val,{Yes},{
  286.                 a:=@getchar(@body(a,escch),2);
  287.             },);
  288.             im(val);
  289.         });
  290.         a:=@body(a,{"});
  291.         },
  292. );
  293. im(a);
  294. };
  295.  
  296. %wadcut{[ptna]
  297. var p[1024*16];
  298. var pp[256];
  299. var w[3];
  300. var val[3];
  301.  
  302. w :={Yes};
  303. p:={};
  304.  
  305. a:=@wdel(ptna);
  306. /*display({a(}|@head(a,{\n})|{)});*/
  307. case(@getchar(a,1,1),
  308.     {"},{
  309.         a:=@body(a,{"});
  310.         loop({
  311.             val:=@nochar(@head(a,escch))<@nochar(@head(a,{"}));
  312.             case(val,
  313.                  {Yes},{
  314.                     p:=p|@head(a,escch)|escch;
  315.                     a:=@body(a,escch);
  316.                     pp:=@nochar(p)-1;
  317.                     case(@getchar(a,1,1),
  318.                         escch,{
  319.                             /*p:=p|escch;*/
  320.                             a:=@getchar(a,2);
  321.                             },
  322.                         {"},{p:=@getchar(p,1,pp)|{"};
  323.                             a:=@getchar(a,2);
  324.                             },
  325.                         {s},{p:=@getchar(p,1,pp)|{ };
  326.                             a:=@getchar(a,2);
  327.                             },
  328.                         {@},{p:=@getchar(p,1,pp)|{@};
  329.                             a:=@getchar(a,2);
  330.                             },
  331.                     );},
  332.  
  333.             );
  334.             im(val);
  335.         });
  336.         p:=p|@head(a,{"});
  337.         a:=@body(a,{"});
  338.         w:={};
  339.         },
  340.     {.},{w:={};},
  341.     {@},{w:={};},
  342. );
  343. case(w,
  344.     {Yes},{
  345.         p:=@head(@head(@head(a,{\n}),{ }),tab);
  346.         a:=@getchar(a,@nochar(p)+1);
  347.         case(@getchar(p,1,1),
  348.             {^},{p:=@ld(@getchar(p,2));
  349.                 },
  350.         );
  351.         }
  352. );
  353.  
  354.  
  355. im(p);
  356. };
  357.  
  358. %wdel{[ptna]
  359. val:={No};
  360. case(@getchar(ptna,1,1),
  361.     { },{a:=@getchar(ptna,2);a:=@wdel(a);},
  362.     {\n},{a:=@getchar(ptna,2);a:=@wdel(a);},
  363.     tab,{a:=@getchar(ptna,2);a:=@wdel(a);}
  364. );
  365. im(a);
  366. };
  367.  
  368. %spdel{[t]
  369. case(
  370.     { } = @getchar(t,1,1) ,
  371.     {Yes},    {
  372.         s := @getchar(t,2,);
  373.         s := @spdel(s);
  374.         },
  375.     {No},    {
  376.         s:=t;
  377.         },
  378.     );
  379. im(s);
  380. };
  381.  
  382. %crdel{[t]
  383. case(
  384.     0 = @nochar(@head(t,{\n})) ,
  385.     {Yes},    {
  386.         s := @body(t,{\n});
  387.         s := @crdel(s);
  388.         },
  389.     {No},    {
  390.         s:=t;
  391.         },
  392.     );
  393. im(s);
  394. };
  395.  
  396. %shellmina{
  397. var plabel[1024];
  398. var ppad[10];
  399.  
  400.     a := pad; 
  401.     loop({
  402.         a := @body(a,{.}); 
  403.     footnote(meeversion |{ 動作中 コマンド(}|@head(@head(@head(a,{ }),{\n}),tab)|{)});
  404. /*    wait(1); display({コマンド(}|@head(a,{\n})|{)\n} );*/
  405.         case(@head(@head(@head(a,{\n}),{ }),tab),
  406.             {fileup},{rfileup;},
  407.             {uptxt},{ruptxt;},
  408.             {upxm},{rupxm;},
  409.             {upym},{rupym;},
  410.             {put},{/*display({プットル-チン});*/rput;},
  411.             {chk},{/*display({チェックル-チン});*/ rchk;},
  412.             {chr}, {rchread;},
  413.             {nr},{/*display({マルチリ-ドル-チン});*/rnr;},
  414.             {dlst},{rdlst;},
  415.             {dlxm},{rdlxm;},
  416.             {dlym},{rdlym;},
  417.             {save},{rsave;},
  418.             {lzsave},{rlzsave;},
  419.             {rec},{rrec;},
  420.             {getlist},{rgetlist;},
  421.             {djlnri},{rdjlnri;},
  422.             {djlnr},{rdjlnr;},
  423.             {bbsname},{rbname;},
  424.             {setsys},{rsetsys;},
  425.             {setbbs},{rsetbbs;},
  426.             {tncset},{rtncset;},
  427.             {pot},{/*display({リトライポイント});*/rpoint;},
  428.             {ref},{rref},
  429.             {rts},{rrts},
  430.             {next},{rnext;},
  431.             {offtime},{rofftime},
  432.             {sttime},{rsttime},
  433.             {grep},{rgrep;},
  434.             {baud},{rbaud;}, 
  435.             {dial},{rdial;},
  436.             {mailr},{rmailr;},
  437.             {call},{/*display({コネクトル-チン});*/ rcall;},
  438.             {inchk},{rinchk;},
  439.             {innext},{rinnext;},
  440.             {dlend},{rdlend;},
  441.             {disc},{/*display({ディスコネル-チン});*/ rdisc;},
  442.             {cutpoint},{rcutpoint;},
  443.             {dos},{rdos;},
  444.             {rem},{rrem;},
  445.             {link},{rlink;},
  446.             {sd},{rsd},
  447.             {st},{rst;},
  448.             {getc},{rgetc;},
  449.             {putc},{rputc;},
  450.             {putcl},{rputcl;},
  451.  
  452.         );
  453.         case(@getchar(a,1,1),pathch,{rlabel;});
  454.         case(@getchar(a,1,1),{.},{a:=sd|@getchar(a,2);rlabel;});
  455. /*        display({a(}|a|{)}|{p(}|p|{)});*/
  456. /*        display({コマンド}|@head(@body(a,{.}),{\n}));*/
  457.         i:= {eof} <> @head(@head(@head(a,{\n}),{ }),tab); 
  458.         i:= i && ( a <> {} );
  459. /*        display(i);*/
  460.         /*wait(1);*/
  461.         im(i);
  462.     });
  463. };
  464.  
  465. %rlabel{
  466. var aa[1024*16];
  467. var val[3];
  468. b:={@}|@wadcut(a);
  469. plabel:=plabel|{ }|@nochar(pad)+1-@nochar(a);
  470. /*wait(1); display({(}|plabel|{)\n} );*/
  471. aa:=pad;
  472. tmp:=a;
  473. a:={};
  474. loop({
  475. /*    aa:=a;
  476.     a:=@body(aa,b);
  477.     aa:=@head(aa,b);*/
  478. a:=@tail(aa,b)|b|a;
  479. aa:=@body(aa,,b);
  480. c:=@getchar(aa,@nochar(aa),1);
  481. val:=c<>{.} && c<>escch;
  482. im(!val);
  483. });
  484. /*wait(1); display({%jsr(}|b|@head(a,{\n})|{)\n} );*/
  485. };
  486.  
  487. %rrts{
  488. b:=@wadcut(a);
  489. b:=@tail(plabel,{ });
  490. plabel:=@body(plabel,{},{ });
  491. /*display({ret(}|b|{)}|plabel|{\n} );*/
  492. a:=@getchar(pad,b);
  493. /*wait(1); display({(}|@head(a,{\n})|{)\n} );*/
  494. };
  495. %rlink{
  496. b:=@wadcut(a);
  497. tmp:=@read(sysdir|@wadcut(a));
  498. pad:=pad|tmp;
  499. a:=a|tmp;
  500. };
  501. %rsd{
  502. b:=@wadcut(a);
  503. b:=@wadcut(a);
  504. case(@getchar(b,1,1)=pathch,
  505.     {Yes},{sd:=b;},
  506.     {No},{sd:=sd|b;}
  507. );
  508. };
  509.  
  510. %rst{
  511. b:=@wadcut(a);
  512. b:=@wadcut(a);
  513. c:=@wadcut(a);
  514. st(b,@esca(c));
  515. };
  516.  
  517. %ld{[ptn]
  518. var b[1024];
  519. var c[1024*16];
  520. tmp:=a;
  521. case(@getchar(ptn,1,1)=pathch,
  522.     {Yes},{b:={@}|ptn;},
  523.     {No},{b:={@}|sd|ptn;}
  524. );
  525. case(a <> @head(a,b),
  526.     {Yes},{c :=@wadcut(@tail(a,b));
  527.         },
  528. );
  529. a:=tmp;
  530. im(c);
  531. };
  532.  
  533.  
  534. %st{[ptn,c]
  535. var b[1024];
  536. case(@getchar(ptn,1,1)=pathch,
  537.     {Yes},{b:={@}|ptn;},
  538.     {No},{b:={@}|sd|ptn;}
  539. );
  540. /*display({%st}|b|{,}|c|{)});*/
  541.  
  542. case(a <> @head(a,b),
  543.     {Yes},{a := @body(a,,b) |{\n}|b|{ }|c|{ }|@skip(@tail(a,b));
  544.         pad := @body(pad,,b) |{\n}|b|{ }|c|{ }|@skip(@tail(pad,b));
  545.             },
  546.     {No},{a:= a|{\n}|b|{ }|c|{ };
  547.         pad:=pad|{\n}|b|{ }|c|{ };
  548.         },
  549. );
  550. /*display({a(}|a|{)});*/
  551.  
  552. };
  553.  
  554. %rgetc{
  555. b:=@wadcut(a);
  556. b:={@}|@wadcut(a);
  557. st(b,@esca(@input({},{u})));
  558. };
  559. %rputc{
  560. b:=@wadcut(a);
  561. display(@wadcut(a));
  562. };
  563. %rputcl{
  564. b:=@wadcut(a);
  565. footnote(@wadcut(a));
  566. };
  567.  
  568. %esca{[ptn]
  569. var b[1024];
  570. var bb[1024];
  571. var bc[1024];
  572. var bd[1024];
  573. bb:=ptn;
  574. loop({
  575.     val:=@nochar(@head(bb,escch))<@nochar(bb);
  576.     case(val,{Yes},{
  577.         b:=b|@head(bb,escch)|escch|escch;
  578.         bb:=@body(bb,escch);
  579.             },
  580.     );
  581.     im(val);
  582. });
  583. case(b={},
  584.     {Yes},{bb:=ptn;},
  585.     {No},{bb:=b;},
  586. );
  587. b:={};
  588. bc:=bb;
  589.  
  590. loop({
  591.     val:=@nochar(@head(bb,{"}))<@nochar(bb);
  592.     case(val,{Yes},{
  593.         b:=b|@head(bb,{"})|escch|{"};
  594.         bb:=@body(bb,{"});
  595.     },);
  596.     im(val);
  597. });
  598. case(b={},
  599.     {Yes},{bb:=bc;},
  600.     {No},{bb:=b;},
  601. );
  602. b:={};
  603. bd:=bb;
  604. loop({
  605.     val:=@nochar(@head(bb,{@}))<@nochar(bb);
  606.     case(val,{Yes},{
  607.         b:=b|@head(bb,{@})|escch|{@};
  608.         bb:=@body(bb,{@});
  609.     },);
  610.     im(val);
  611. });
  612. case(b={},
  613.     {Yes},{b:=bc;},
  614. );
  615.  
  616. im({"}|b|{"});
  617. };
  618.  
  619. %rrem{
  620. b:=@wadcut(a);    /*ner;*/
  621. };
  622.  
  623. %rsetbbs{
  624. b:=@wadcut(a);
  625. loop({
  626. b:=@wadcut(a);
  627. case(@strupr(b),
  628. {TYPE:},{bbstype:=@strupr(@wadcut(a));},
  629. {NAME:},{bbsname:=@strupr(@wadcut(a));},
  630. {CHK:},{c:=@wadcut(a);lstchkketa:=@head(c,{[});lstchkmoji:=@tail(c,{[},{]});},
  631. {NAM:},{c:=@wadcut(a);lstnamketa:=@head(c,{[});lstcutnamketa:=@tail(c,{[},{]});},
  632. {AT:},{c:=@wadcut(a);lstatketa:=@head(c,{[});lstcutatketa:=@tail(c,{[},{]});},
  633. {TO:},{c:=@wadcut(a);lsttoketa:=@head(c,{[});lstcuttoketa:=@tail(c,{[},{]});},
  634. {SUBJ:},{c:=@wadcut(a);lstsubj:=@head(c,{[});lstcutsubj:=@tail(c,{[},{]});},
  635. );
  636. im(b<>{});
  637. /*display({b(}|b|{)});
  638. wait(1);*/
  639. });
  640. display({識別桁}|lstchkketa|{ 識別文字}|lstchkmoji|{ TO桁}|lsttoketa|{ TO桁数}|lstcuttoketa|{ 他省略^"^;});
  641. };
  642. %rsetsys{
  643. b:=@wadcut(a);
  644. loop({
  645. b:=@wadcut(a);
  646. case(@strupr(b),
  647. {SYSDIR:},{sysdir:=@wadcut(a);},
  648. {LOGDIR:},{logdir:=@wadcut(a);},
  649. {TMPDIR:},{tmpdir:=@wadcut(a);},
  650. {LISTDIR:},{listdir:=@wadcut(a);},
  651. );
  652. im(b<>{});
  653. /*display({b(}|b|{)});
  654. wait(1);*/
  655. });
  656. display({システムdir}|sysdir|{ 格納dir}|logdir|{ 退避dir}|tmpdir|{ listdir}|listdir);
  657. };
  658.  
  659. %rcutpoint{
  660. b:=@wadcut(a);    /*a := @spdel(@body(a,{cutpoint}));*/
  661. };
  662.  
  663. %rdos{
  664. b:=@wadcut(a);    /*a := @spdel(@body(a,{dos}));*/
  665. b:=@wadcut(a);
  666. command(b);
  667. };
  668.  
  669. %rtncset{
  670. b:=@wadcut(a);    /*ner;*/
  671. tncset;
  672. };
  673.  
  674. %rpoint{
  675. b:=@wadcut(a);
  676. potcount:=@wadcut(a)+0;
  677. display(potcount|{回迄});
  678. point:=a;
  679. count:=1;
  680. };
  681.  
  682. %rref{
  683. a:=pad;
  684. };
  685.  
  686.  
  687. %rnext{
  688. b:=@wadcut(a);    /*a:=@body(a,{ });    *display({中身}|a);*/
  689. b:=@wadcut(a);    /*b:=@rnk;*/
  690.     next(b);
  691. };
  692. %rofftime{
  693. b := @wadcut(a); /*a := @spdel(@body(a,{offtime}));*/
  694. b := @wadcut(a); /*b:=@rnk;*/
  695. loop({
  696. setdate;
  697.     case( @nochar(b) <> @nochar( @head(b,hh|{:}) ) ,
  698.         {Yes},{footnote(hh|{時なので時間待ちをします});wait(60);}
  699.     );
  700.     im(@nochar(b) <> @nochar(@head(b,hh|{:})));
  701. });
  702. footnote(meeversion |{ 動作中});
  703. };
  704.  
  705. %rsttime{
  706. b := @wadcut(a);
  707. b := @wadcut(a);
  708. loop({
  709.     setdate;
  710.     case( b <> mm ,
  711.         {Yes},{footnote(b|{分まで時間待ちをします});wait(10);}
  712.     );
  713.     im(b <> mm);
  714. });
  715. footnote(meeversion |{ 動作中});
  716.  
  717. };
  718.  
  719. %rgrep{
  720. b:=@wadcut(a);    /*a:=@body(a,{ });*/
  721. b:=@wadcut(a);    /*b:=@rnk;*/
  722. c:=@wadcut(a);
  723. grep(b,c);
  724. };
  725.  
  726. %rcall{
  727. b:=@wadcut(a); /*a:=@body(a,{ });    *display({中身}|a);*/
  728. b:=@wadcut(a); /*b:=@rnk;*/
  729.     Call(b);
  730. };
  731.  
  732. %rdlst{
  733. b:=@wadcut(a); /*ner;*/
  734. b:=@wadcut(a); /*b:=@rnk;*/
  735. c:=@wadcut(a);
  736.     setdate;
  737.     receive(logdir|@day|hh|mm|c|{.}|b);
  738. dlname := logdir|@day|hh|mm|c|{.}|b;
  739. };
  740.  
  741. %rdlxm{
  742. b:=@wadcut(a); /*ner;*/
  743. b:=@wadcut(a); /*b:=@rnk;*/
  744. c:=@wadcut(a);
  745. case (dlname<>{},{Yes}, {stoprec;});
  746.     setdate;
  747.     receivex(logdir|@day|hh|mm|c|{.}|b);
  748.     stoprec;
  749. case (dlname<>{},{Yes}, {receive(dlname);});
  750. };
  751.  
  752. %rdlym{
  753. b:=@wadcut(a); /*ner;*/
  754. b:=@wadcut(a); /*b:=@rnk;*/
  755. c:=@wadcut(a);
  756. case (dlname<>{},{Yes}, {stoprec;});
  757.     setdate;
  758.     receivey(logdir|@day|hh|mm|c|{.}|b);
  759.     stoprec;
  760. case (dlname<>{},{Yes}, {receive(dlname);});
  761. };
  762.  
  763. %rsave{
  764. b:=@wadcut(a);
  765. b:=@wadcut(a);
  766. c:=@wadcut(a);
  767. setcdir(logdir);
  768. display({D/L(}|b|{.}|c|{)});
  769.     receive(b|{.}|c);
  770. dlname := b|{.}|c;
  771. };
  772.  
  773. %rlzsave{
  774. b:=@wadcut(a);
  775. b:=@wadcut(a);
  776. c:=@wadcut(a);
  777. setcdir(tmpdir);
  778. d:=logdir|@getchar(@tail(b,{:})|{log},1,8)|{.lzh};
  779. case(@filechk(d),{Yes},
  780.     {wait(1);
  781.     command(sysdir|{lha e -m }|d|{ }|@getchar(@tail(b,{:}),1,8)|{.}|c);
  782.     case(@filechk(@getchar(@tail(b,{:}),1,8)|{.}|c),{No},{end;});
  783. }
  784. );
  785. display({D/L(}|b|{.}|c|{)});
  786.     receive(@tail(b,{:})|{.}|c);
  787. dlname := b|{.}|c;
  788. lz:={Y};
  789. };
  790.  
  791. %rrec{
  792. b:=@wadcut(a); 
  793. b:=@wadcut(a);
  794. setcdir(logdir);
  795.     received(b);
  796. dlname := b|{.}|@day;
  797. };
  798.  
  799. %rdlend{
  800. b:=@wadcut(a);    /*ner;*/
  801. case (dlname<>{},
  802. {Yes}, {
  803.     stoprec;
  804.     case(lz,{Y},{wait(1);
  805.         command(sysdir|{lha m -m }|logdir|
  806.         @getchar(@head(@tail(dlname,{:}),{.})|{log},1,8)|{ }|
  807.         tmpdir|@getchar(@head(@tail(dlname,{:}),{.}),1,8)|{.}|
  808.         @tail(dlname,{.})
  809.         |{ >}|tmpdir|{lha.msg});
  810.         case(@filechk(tmpdir|@tail(dlname,{:})),
  811.             {Yes},{display(dlname|{ファイルが書けません});
  812.                 end;
  813.                 });
  814.     /*    del(tmpdir|dlname);*/
  815.         lz:={};
  816.         }
  817.     );
  818.     dlname:={};
  819.     }
  820. );
  821. };
  822.  
  823. %rbname{
  824. b:=@wadcut(a); /*a := @spdel(@body(a,{bbsname}));*/
  825. bbsname := @wadcut(a);
  826. };
  827.  
  828. %rgetlist{/*[n,prt,bbs,poinpath]*/
  829. b:=@wadcut(a); /*a := @spdel(@body(a,{getlist}));*/
  830. b:=@wadcut(a); /*b := @rnk;*/
  831. c:=@wadcut(a);
  832. d:=@wadcut(a);
  833. e:=@wadcut(a);
  834. display({1(}|b|{) 2(}|c|{) 3(}|d|{) 4(}|e|{)} );
  835. type({ll 1\n});
  836. ch(b,c);
  837. ch(b,{>});
  838. p:=@getchar(@tail(@body(@body(@laststr(128),,c),,{\n}),{\n}),1,5)+0;
  839. type({l }|@glistpoint(d,e)|{ }|p|{\n});
  840. chread(b,c,{/});
  841. ch(b,{>});
  842. plistpoint(d,e,p);
  843. listcval:={Yes};
  844. };
  845.  
  846. %rdjlnri{/*[bbsname,poinpath,toname,atname]*/
  847. b := @wadcut(a);    /*a := @spdel(@body(a,{djlnri}));*/
  848. b := @wadcut(a);/*BBSname*/
  849. c := @wadcut(a);/*poinpath*/
  850. d := @wadcut(a);/*toname*/
  851. e := @wadcut(a);/*atname*/
  852. display({%rdjlnri 1(}|b|{) 2(}|c|{) 3(}|d|{) 4(}|e|{)\n} );
  853.  
  854. dlist := @listget3(b,d,e,@glistpoint(b,c)+1|{ 5626});
  855. del(logdir|b|@tail(@body(c,,{\}),{\},{*})|{.lst});
  856. write(logdir|b|@tail(@body(c,,{\}),{\},{*})|{.lst},dlist);
  857. bbsname := b;
  858. ppath := c;
  859. };
  860.  
  861. %rdjlnr{/*[n,prt,filename,poinpath]*/
  862. b:=@wadcut(a);    /*a:=@spdel(@body(a,{djlnr}));*/
  863. b:=@wadcut(a);    /*b:=@rnk;    *n*/
  864. c:=@wadcut(a);
  865. d:=@wadcut(a);
  866. e:=@wadcut(a);
  867. /*display({%rdjlnr 1(}|b|{) 2(}|c|{) 3(}|d|{) 4(}|e|{)\n} );*/
  868.  
  869. var newnam1[5];
  870. bbsname := d;
  871. ppath := e;
  872.  
  873. tmp := a;
  874.  
  875. dlist := @read(logdir|d|@tail(@body(e,,{\}),{\},{*})|{.lst});
  876. /*newnam :=@head(dlist,{ });
  877. dlist :=@body(dlist,{ });
  878. type({r }|newnam|{\n});
  879.     ch(b,c);*/
  880. /*plistpoint(d,e,newnam);*/
  881. /*plistpoint(bbsname,ppath,newnam);*/
  882. case (dlist<>{},{Yes},{
  883.     loop({
  884.  
  885.         newnam1 :=@head(dlist,{ });
  886.         dlist :=@body(dlist,{ });
  887.         type({r }|newnam1|{\n});
  888.         ch(b,c);
  889.         ch(b,{>});
  890.         newnam := newnam1;
  891.     /*    plistpoint(d,e,newnam1);*/
  892.         im(dlist<>{});
  893.     });
  894. });
  895. case (newnam<>{},{Yes},
  896.     {plistpoint(bbsname,ppath,newnam);newnam:={};
  897.     del(logdir|d|@tail(@body(e,,{\}),{\},{*})|{.lst});
  898.     }
  899. );
  900. /*plistpoint(d,e,newnam);*/
  901. a:= tmp;
  902. };
  903.  
  904. %rchk{
  905. b:=@wadcut(a); /*a:=@body(a,{ });*/
  906. b:=@wadcut(a); /*b:=@rnk;*/
  907. c:=@wadcut(a);
  908. /*display({%ch 1(}|b|{) 2(}|c|{)} );*/
  909. ch(b,c);
  910. };
  911.  
  912. %rinchk{
  913.     b:=@wadcut(a);
  914.     b:=@wadcut(a);
  915.     footnote(b|{秒間 入力チェック});
  916.     case(@inchk(b),
  917.         {No},{    footnote(meeversion|{ 動作中});
  918.             display({入力無し\n});exit;}
  919.     );
  920.  
  921.     footnote(meeversion |{ 動作中});
  922. };
  923.  
  924. %rinnext{
  925.     b:=@wadcut(a);
  926.     b:=@wadcut(a);
  927.     innext(b);
  928. };
  929.  
  930. %innext{[b]
  931. var c[8];
  932. c:= 0;
  933.     loop({
  934.         footnote({応答チェック中 秒読み(}|b-c|{)});
  935.         case(@inchk(1),
  936.             {Yes},{c:=c+1;},
  937.             {No},{c:=0;}
  938.         );
  939.         im(b>c);
  940.     });
  941.     display({応答無し\n});
  942.     footnote(meeversion |{ 動作中});
  943. };
  944.  
  945. %rput{
  946. b:=@wadcut(a);    /*a:=@body(a,{ });    *display({中身}|a);*/
  947. b:=@wadcut(a);    /*b:=@rnk;*/
  948. type(b);
  949. display({送信(}|b|{)});
  950. };
  951.  
  952. %rnr{
  953. b:=@wadcut(a);    /*a:=@body(a,{ });    *display({中身}|a);*/
  954. b:=@wadcut(a);    /*b:=@rnk;*/
  955. c:=@wadcut(a);
  956. d:=@wadcut(a);
  957. e:=@wadcut(a);
  958. display({1(}|b|{) 2(}|c|{) 3(}|d|{) 4(}|e|{)} );
  959. nread(b,c,d,e);
  960. };
  961.  
  962. %rfileup{
  963. b:=@wadcut(a);    /*a:=@body(a,{ });    *display({中身}|a);*/
  964. b:=@wadcut(a);    /*b:=@rnk;*/
  965. c:=@wadcut(a);
  966. fileup(b|{.}|c);
  967. };
  968.  
  969. %ruptxt{
  970. b:=@wadcut(a);
  971. b:=@wadcut(a);
  972. c:=@wadcut(a);
  973. case (dlname<>{},{Yes}, {stoprec;});
  974. send(b|{.}|c);
  975. case (dlname<>{},{Yes}, {receive(dlname);});
  976. };
  977.  
  978. %rupxm{
  979. b:=@wadcut(a);
  980. b:=@wadcut(a);
  981. c:=@wadcut(a);
  982. case (dlname<>{},{Yes}, {stoprec;});
  983. sendx(b|{.}|c);
  984. case (dlname<>{},{Yes}, {receive(dlname);});
  985. };
  986.  
  987. %rupym{
  988. b:=@wadcut(a);
  989. b:=@wadcut(a);
  990. c:=@wadcut(a);
  991. case (dlname<>{},{Yes}, {stoprec;});
  992. sendy(b|{.}|c);
  993. case (dlname<>{},{Yes}, {receive(dlname);});
  994. };
  995.  
  996. %rdisc{
  997.  b:=@wadcut(a);
  998. discon;
  999.  cmdchk;
  1000. case(linetype,
  1001.     {tnc},{
  1002.         type({d\n});
  1003.          wait (60,{stop},
  1004.             {*** DISCONNECTED},{display({ディスコネ確認});},
  1005.             {Link state is: DISCONNECTED},{display({ディスコネ});},
  1006.         );},
  1007. );    
  1008. case (dlname<>{},{Yes}, {stoprec; dlname:={};});
  1009. case (newnam <> {} , {Yes} , {plistpoint(bbsname,ppath,newnam);newnam := {};},);
  1010. newnam := {};
  1011. };
  1012.  
  1013. %mailr{
  1014.   loop({
  1015.     wait(20,{exit},
  1016.     {0:end >},     {
  1017.            type({\n});
  1018.            wait(120,{exit;},
  1019.                {削除しますか? (Y/N)>},{type({y\n});val:={Yes};},
  1020.             {?,G)>},{val:={No};display({プロントプト確認});}
  1021.             );
  1022.            },
  1023.         {>>},{val:={No};display({プロントプト確認});},
  1024.         {?,G)>},{val:={No};display({プロントプト確認});}
  1025.     );
  1026.     im (val);
  1027.   });
  1028. };
  1029.  
  1030. %rmailr{
  1031. b:=@wadcut(a);    /*    ner;*/
  1032.     mailr;
  1033. };
  1034.  
  1035. %rchread{
  1036. b:=@wadcut(a);    /*a:=@body(a,{ });    *display({中身}|a);*/
  1037. b:=@wadcut(a);    /*b:=@rnk;*/
  1038. c:=@wadcut(a);
  1039. d:=@wadcut(a);
  1040. chread(b,c,d);
  1041. };
  1042. var val[3];
  1043. %chread{[n,ptn,ptn2]
  1044.    loop({
  1045.       wait(n,{exit;},
  1046.          ptn2,{/*display(ptn2|{次のメッセージへ\n});*/val:={Yes};},
  1047.          {*** DISCONNECTED [},{display({ディスコネ});{exit;};},
  1048.          ptn,{val:={No};}
  1049.       );
  1050.       im(val);
  1051.    });
  1052. };
  1053.  
  1054. %rdial{
  1055. b:=@wadcut(a);    /*a:=@body(a,{ });    *display({中身}|a);*/
  1056. b:=@wadcut(a);    /*b:=@rnk;*/
  1057. tel(b);
  1058. display({コネクト確認});
  1059. };
  1060.  
  1061. %tel{[b]
  1062. dialone({atd }|b ,{retrycount:=0;},{
  1063. case(retrycount>retry,{Yes},{exit;});
  1064. retrycount:=retrycount+1;
  1065. next(busytime);tel(b);
  1066. });
  1067. };
  1068.  
  1069. %rbaud{
  1070. b:=@wadcut(a);    /*a:=@body(a,{ });*/
  1071. b:=@wadcut(a);    /*@rnk;*/
  1072. display({b(}|b|{)});
  1073. baud(b);
  1074. };
  1075.  
  1076.  
  1077. %inchk{[a]
  1078. p:= @laststr;
  1079. wait(a);
  1080. im(p = @laststr);
  1081. };
  1082.  
  1083. %ucase{[a]
  1084. strupr(a);
  1085. };
  1086. %strupr{[a]
  1087. var aluha[256];
  1088. var ALUHA[256];
  1089. var b[256];
  1090. var i[3];
  1091. var j[256];
  1092. var t[1];
  1093. aluha := {$abcdefghijklmnopqrstuvwxyz};
  1094. ALUHA := {#ABCDEFGHIJKLMNOPQRSTUVWXYZ};
  1095. i := 0;
  1096. case(a={} ,{No},{
  1097.         loop({
  1098.             i:= i+1 ;
  1099.             t:= @getchar(a,i,1);
  1100.             j:= @head(aluha,t);
  1101.             case((j={}) <> (j=aluha),{Yes},{b:=b|t;},
  1102.                 {No},{
  1103.  
  1104.             b:=b|@getchar(ALUHA,@nochar(j)+1,1);}
  1105.             );
  1106.             im(i < @nochar(a) );
  1107.         });
  1108.     });
  1109. im(b);
  1110. };
  1111.  
  1112. %ccomp{[ptn,ptn2]
  1113. p := @head(ptn2,{*});
  1114. im(@getchar(ptn,1,@nochar(p)) = p);
  1115. };
  1116.  
  1117. %instr{[ptn,ptn2]
  1118. var p[256];
  1119. p:=@nochar(ptn);
  1120. case(p>=@nochar(ptn2),
  1121. {Yes},{
  1122.     case(@nochar(@body(ptn,ptn2))=0,
  1123.         {Yes},{
  1124.             case(@getchar(ptn,p+1-@nochar(ptn2))<>ptn2,
  1125.                 {Yes},{p:=0;},
  1126.             );
  1127.             },
  1128.         {No},{
  1129.             p:=@nochar(@head(ptn,ptn2))+1;
  1130.             }
  1131.     );
  1132. },
  1133. {No},{p:=0}
  1134. );
  1135.  
  1136. im(p);
  1137. };
  1138.  
  1139. %chkch{
  1140. case(to={},
  1141.     {No},{chkmoji:=to; chkketa:=lsttoketa;},
  1142.     {Yes},{chkmoji:=lstchkmoji; chkketa:=lstchkket;
  1143.         case(at={},
  1144.             {No},{chkmoji:=at; chkketa:=lstatketa;},
  1145.         );}
  1146. );
  1147. };
  1148.  
  1149. %listv{[file,ptn,ptn2,line]
  1150. var a[1024*10];
  1151. var b[5];
  1152. var log[1024*10];
  1153. var linel[5];
  1154. var lineh[5];
  1155. var to[256];
  1156. var at[256];
  1157.  
  1158. /*display({%listv 1(}|file|{) 2(}|ptn|{) 3(}|ptn2|{) 4(}|line|{)\n} );*/
  1159.  
  1160. linel := @head(line,{ })+0;
  1161. lineh := @body(line,{ })+0;
  1162. to:=@strupr(ptn);
  1163. at:=@strupr(ptn2);
  1164. case(@body(to,,{*})={},{Yes},{to:=to|{ };});
  1165. case(@body(at,,{*})={},{Yes},{at:=at|{ };});
  1166. to:=@head(to,{*});
  1167. at:=@head(at,{*});
  1168. display({%listv (}|file|{) to(}|to|{) at(}|at|{) line(}|linel|{,}|lineh|{)\n} );
  1169.  
  1170. chkch;
  1171. fopen(file);
  1172.  
  1173. loop({
  1174. a := @fread(chkketa,chkmoji);
  1175. footnote({0(}|a|{)});
  1176. case(@getchar(a,lstchkketa,@nochar(lstchkmoji)) =lstchkmoji ,
  1177.     {Yes},{footnote({1(}|a|{)});
  1178. case(@instr(a,discmoji)=0,
  1179.     {Yes},{footnote({2(}|a|{)});
  1180.     case(@getchar(a,lstnamketa,lstcutnamketa) >= linel ,
  1181.         {Yes},{
  1182.     case(@getchar(a,lstnamketa,lstcutnamketa) <= lineh ,
  1183.         {Yes},{
  1184.         case(@ccomp(@getchar(a,lsttoketa,@nochar(to)),to),
  1185.             {Yes},{
  1186.         case(@ccomp(@getchar(a,lstatketa,@nochar(at)),at),
  1187.                 {Yes},{
  1188.             case(@getchar(a,lstnamketa,lstcutnamketa) <> b,{Yes},{
  1189.                 log :=log | a  ;
  1190.                 b:= @getchar(a,lstnamketa,lstcutnamketa);
  1191.                 display(a);
  1192.             });
  1193.         });
  1194.         });
  1195.     });
  1196.     });
  1197. });
  1198. });
  1199. /*    wait(1);*/
  1200.     im(a <> {});
  1201. });
  1202. fclose;
  1203. im(log);
  1204. };
  1205.  
  1206. %getdir{[ptn]
  1207. wait(1);
  1208. command({dir }|ptn|{ }|/*{|}|logdir|{sort }*/{>}|logdir|{dir___.dir});
  1209. im(@read(logdir|{dir___.dir}));
  1210. };
  1211.  
  1212. %fgrep{[infile,ptn,outfile]
  1213. var in[1024*5];
  1214. var out[1024*5];
  1215.  
  1216. in := @read(infile);
  1217. loop({
  1218.  
  1219. out := out| @tail(@head(in,ptn),{\n})  |ptn|@head(@body(in,ptn),{\n})|{\n};
  1220. in := @body(in,ptn);
  1221.  
  1222. im(in<>{});
  1223.  
  1224. });
  1225. case(@filechk(outfile),{Yes},{wait(1);command({del }|outfile);});
  1226. write(outfile,out);
  1227. im(out);
  1228. };
  1229.  
  1230.  
  1231. %listgrep{[file,ptn,ptn2,line]
  1232. var a[1024*5];
  1233. var b[5];
  1234. var log[1024*5];
  1235. var to[256];
  1236. var at[256];
  1237.  
  1238. to:=@strupr(ptn);
  1239. at:=@strupr(ptn2);
  1240. case(@body(to,,{*})={},{Yes},{to:=to|{ };});
  1241. case(@body(at,,{*})={},{Yes},{at:=at|{ };});
  1242. to:=@head(to,{*});
  1243. at:=@head(at,{*});
  1244.  
  1245. chkch;
  1246. fopen(file);
  1247.  
  1248. loop({
  1249.     a := @fread(chkketa,chkmoji);
  1250.     case(@getchar(a,lstnamketa,lstcutnamketa) >= line ,
  1251.         {Yes},{
  1252. footnote(a);
  1253.         case(@ccomp(@getchar(a,lsttoketa,@nochar(to)),to),
  1254.             {Yes},{
  1255.         case(@ccomp(@getchar(a,lstatketa,@nochar(at)),at),
  1256.             {Yes},{
  1257.             case(@getchar(a,lstnamketa,lstcutnamketa) <> b,{Yes},{
  1258.                 log:=log|@getchar(a,lstnamketa,lstcutnamketa)+0 |{ } ;
  1259.                 b:= @getchar(a,lstnamketa,lstcutnamketa);
  1260.                     display(a);
  1261.             });
  1262.         });
  1263.         });
  1264.     });
  1265.  
  1266.     /*wait(1);*/
  1267.     im(a <> {});
  1268. });
  1269. fclose;
  1270. im(log);
  1271. };
  1272.  
  1273.  
  1274. %glistpoint{[bbs,lpath]
  1275. var lp [1024];
  1276.  
  1277. /*display({%glistpoint 1(}|bbs|{) 2(}|lpath|{)\n} );*/
  1278. /*display(logdir|{listpoint.}|bbs|{\n});*/
  1279.  
  1280. lp := @read(logdir|{listpoint.}|bbs);
  1281.  
  1282. /*display({path(}|@ucase(lpath)|{) nam(}|@head(@body(lp,@ucase(lpath)),{\n})|{)\n} );*/
  1283. im(@head(@body(lp,@strupr(lpath)),{\n}));
  1284. };
  1285.  
  1286.  
  1287. %plistpoint{[bbs,lpath,pot]
  1288. var lp [1024*5];
  1289. var la [1024*5];
  1290. lp := @read(logdir|{listpoint.}|bbs);
  1291. display({(}|lpath|{)}|pot|{ポインタ更新\n});
  1292. case(lp <> @head(lp,@strupr(lpath)),
  1293.     {Yes},{la := @head(lp,@strupr(lpath)) |@strupr(lpath)|pot|{\n}|
  1294.             @body(@body(lp,@strupr(lpath)),{\n});
  1295.         },
  1296.     {No},{la:= lp|@strupr(lpath)|pot|{\n};
  1297.         }
  1298. );
  1299. wait(1);
  1300. command({copy }|logdir|{listpoint.}|bbs|{ }|logdir|{listpoint.}|{1st});
  1301. wait(1);
  1302. command({del }|logdir|{listpoint.}|bbs);
  1303. write (logdir|{listpoint.}|bbs,la);
  1304. };
  1305.  
  1306. %getlist3{[bbs,line]
  1307. var dirbak[1024*10];
  1308. var flist[1024*5];
  1309. var afile[16];
  1310. var out[1024*10];
  1311. var to[7];
  1312. var at[7];
  1313.  
  1314.  
  1315. case(@filechk(logdir|bbs|{dir.bak}),
  1316.     {Yes},{
  1317.         dirbak:=@read(logdir|bbs|{dir.bak});
  1318.         }
  1319. );
  1320. getdir(logdir|{.}|bbs);
  1321. wait(1);
  1322. command(sysdir|{sort <}|logdir|{dir___.dir >}|tmpdir|{dir___.srt});
  1323. /*display(@read(tmpdir|{dir___.srt}));*/
  1324. flist:=@crdel(@fgrep(tmpdir|{dir___.srt},{# },logdir|{#dir.dir}));
  1325. display(flist);
  1326. loop({
  1327. case(@instr( dirbak,@tail(@head(flist,{\n}) ,{\n}) ) = 0,
  1328.     {Yes},{
  1329.         afile:=logdir|@tail(@head(flist,{ }),{\n})|{.}|bbs;
  1330. display(afile);
  1331.         case(@filechk(afile),
  1332.             {Yes},{listcut(afile,line);}
  1333.         );
  1334.         wait(1);
  1335.         }
  1336. );
  1337. flist:=@body(flist,{\n});
  1338. im(flist <> {});
  1339. });
  1340. del(logdir|bbs|{dir.bak});
  1341. wait(1);
  1342. command({rename }|logdir|{#dir.dir }|bbs|{dir.bak});
  1343.  
  1344.  
  1345.  
  1346. case(@filechk(logdir|bbs|{sort.bak}),
  1347.     {Yes},{dirbak:=@read(logdir|bbs|{sort.bak});},
  1348.     {No},{display(logdir|bbs|{sort.bakが見つかりません});}
  1349. );
  1350. flist:=@getdir(listdir|bbs|{list#.*});
  1351. loop({
  1352. /*display(listdir|@tail(@head(flist,{ }),{\n})|{.}|@getchar(@body(flist,{ }),1,3)|{\n});*/
  1353.     case(@instr(dirbak,@tail(@head(flist,{\n}),{\n})) = 0,
  1354.         {Yes},{
  1355.  
  1356. afile:=@tail(@head(flist,{ }),{\n})|{.}|@getchar(@body(flist,{ }),1,3);
  1357.             case(@filechk(listdir|afile),
  1358.                 {Yes},{
  1359. wait(1);
  1360. command(sysdir|{sort <}|listdir|afile|{ >}|tmpdir|{sort.tmp});
  1361. del(listdir|afile);
  1362. write(listdir|afile,@listv(tmpdir|{sort.tmp},{*},{*},{1 99999}));
  1363. /*fcopy(logdir|{sort.tmp},afile);*/
  1364.                     }
  1365.             );}
  1366.     );
  1367.     flist:=@body(flist,{\n});
  1368.     im(flist <> {});
  1369. });
  1370. getdir(listdir|bbs|{list#.*});
  1371. del(logdir|bbs|{sort.bak});
  1372. wait(1);
  1373. command({rename }|logdir|{dir___.dir }|bbs|{sort.bak});
  1374. listcval := {No}
  1375. };
  1376.  
  1377. %listcut{[file,line]
  1378. var a[1024*10];
  1379. var b[5];
  1380. var log[1024*10];
  1381. var linel[5];
  1382. var lineh[5];
  1383. var to[6];
  1384. var at[6];
  1385. var savename[256];
  1386. var savenam[256];
  1387. var xsavename[256];
  1388.  
  1389. linel := @head(line,{ })+0;
  1390. lineh := @body(line,{ })+0;
  1391.  
  1392. log:={};
  1393. display({%listcut 1(}|file|{) 2(}|line|{)\n} );
  1394.  
  1395. fopen(file);
  1396.  
  1397. loop({
  1398. a := @fread(lstchkketa,lstchkmoji);
  1399. /*footnote({0(}|a|{)});*/
  1400. case(@getchar(a,lstchkketa,@nochar(lstchkmoji)) =lstchkmoji ,
  1401.     {Yes},{footnote({1(}|a|{)});
  1402. case(@instr(a,discmoji)=0,
  1403.     {Yes},{footnote({2(}|a|{)});
  1404.     case(@getchar(a,lstnamketa,lstcutnamketa) >= linel ,
  1405.         {Yes},{
  1406.     case(@getchar(a,lstnamketa,lstcutnamketa) <= lineh ,
  1407.         {Yes},{
  1408.             case(@getchar(a,lstnamketa,lstcutnamketa) <> b,{Yes},{
  1409.  
  1410. case(log={},{Yes},{xsavenam:=savenam;});
  1411. savenam:=@spdel(@getchar(a,lstnamketa,3));
  1412. savename:=listdir|@body(file,{.})|{list#.}|@getchar({000},1,3-@nochar(xsavenam))|xsavenam;
  1413. display(/*savenam|xsavenam|*/(xsavenam=savenam));
  1414. case((xsavenam=savenam),
  1415.     {Yes},{
  1416.         log :=log | a;
  1417.         },
  1418.     {No},{
  1419. display(@getchar({000},1,3-@nochar(xsavenam))|xsavenam|{\n});
  1420. /*display(log|{\n});*/
  1421.         write(savename,log);
  1422.         log:=a;
  1423.         },
  1424. );
  1425. xsavenam:=savenam;
  1426.             });
  1427.     });
  1428.     });
  1429. });
  1430. });
  1431.  
  1432.     im(a <> {});
  1433. });
  1434. fclose;
  1435. display(@getchar({000},1,3-@nochar(savenam))|savenam|{\n});
  1436. /*display(log|{\n});*/
  1437. case(log<>{},{Yes},{
  1438.         write(savename,log);
  1439.         log:={};
  1440.         }
  1441. );
  1442. lstchkmoji:=djllchmoji;
  1443. lstchkketa:=djllchketa;
  1444. /*wait(1);*/
  1445. im(log);
  1446. };
  1447.  
  1448. %listget3{[bbs,to,at,line]
  1449. var flist[1024*5];
  1450. var afile[16];
  1451. var out[1024*10];
  1452. var linel[5];
  1453. var lineh[5];
  1454.  
  1455. case(listcval={No} ,{No},{getlist3(bbs,{1 99999});});
  1456.  
  1457. display({%listget3 bbs(}|bbs|{) to(}|to|{) at(}|at|{) line(}|line|{)\n});
  1458.  
  1459. linel := @head(line,{ })+0;
  1460. lineh := @body(line,{ })+0;
  1461.  
  1462. getdir(listdir|bbs|{list#.*});
  1463. wait(1);
  1464. command(sysdir|{sort <}|logdir|{dir___.dir >}|tmpdir|{dir___.srt});
  1465. flist:=@read(tmpdir|{dir___.srt});
  1466. loop({
  1467. /*display(@getchar(@body(flist,{ }),1,3)|{>=}|@getchar({000}|linel,@nochar(linel)-1,3)|{ });*/
  1468.  
  1469.     case(@getchar(@body(flist,{ }),1,3)>=@getchar({000}|linel,@nochar(linel)-1,3),
  1470.         {Yes},{
  1471.     afile:=@tail(@head(flist,{ }),{\n})|{.}|@getchar(@body(flist,{ }),1,3);
  1472.  
  1473.     case(@filechk(listdir|afile),
  1474.         {Yes},{    out := out|@listgrep(listdir|afile,to,at,linel);});
  1475.     });
  1476.     flist:=@body(flist,{\n});
  1477.     im(flist <> {});
  1478. });
  1479. /*wait(1);*/
  1480. im(out);
  1481. };
  1482.  
  1483. %memosave{
  1484. var i[256];
  1485. i:=0;
  1486. case(@mcheck=0,{No},{mclose(1);});
  1487. loop({
  1488. i:=i+1;
  1489. mwrite(tmpdir|{memo}|hh|mm|{.me}|i,i);
  1490. im(@mlast>i);
  1491. });
  1492. };
  1493.  
  1494. /* main */
  1495.  
  1496. /*setcdir(logdir);*/
  1497. /*memosave;*/
  1498. footnote({手続きファイルを選んでください});
  1499. pad := @read(@filesel({SMN}));
  1500. footnote(meeversion|{ 動作中});
  1501. init;
  1502. shellmina;
  1503. stop;
  1504.